insert overwrite table jms_dm.dm_diff_customer_deliver_and_contribution_ratio_dt partition (dt)
select networktype                                                                     --区分代理,加盟,网点
     , timetype                                                                        --时间类型
     , date_time                                                                       --天
     , agent_code                                                                      --代理区code
     , agent_name                                                                      --代理区
     , fran_code                                                                       --加盟商名称code
     , fran_name                                                                       --加盟商名称
     , network_code                                                                    --网点编码
     , network_name                                                                    --网点名称
     , total_customer_num                                                              --总客户数
     , total_ticket_num                                                                --总票数
     , a_total_customer_level                                                          --A类客户数
     , round(a_total_customer_level / total_customer_num, 4) as a_ratio_customer_level --A类客户数据占比
     , a_total_ticket_level                                                            --A类客户发货量
     , round(a_total_ticket_level / total_ticket_num, 4)     as a_ratio_ticket_level   --A类客户发件量占比
     , b_total_customer_level                                                          --B类客户数
     , round(b_total_customer_level / total_customer_num, 4) as b_ratio_customer_level --B类客户数据占比
     , b_total_ticket_level                                                            --B类客户发货量
     , round(b_total_ticket_level / total_ticket_num, 4)     as b_ratio_ticket_level   --B类客户发件量占比
     , c_total_customer_level                                                          --C类客户数
     , round(c_total_customer_level / total_customer_num, 4) as c_ratio_customer_level --C类客户数据占比
     , c_total_ticket_level                                                            --C类客户发货量
     , round(c_total_ticket_level / total_ticket_num, 4)     as c_ratio_ticket_level   --C类客户发件量占比
     , d_total_customer_level                                                          --D类客户数
     , round(d_total_customer_level / total_customer_num, 4) as d_ratio_customer_level --D类客户数据占比
     , d_total_ticket_level                                                            --D类客户发货量
     , round(d_total_ticket_level / total_ticket_num, 4)     as d_ratio_ticket_level   --D类客户发件量占比
     , e_total_customer_level                                                          --E类客户数
     , round(e_total_customer_level / total_customer_num, 4) as e_ratio_customer_level --E类客户数据占比
     , e_total_ticket_level                                                            --E类客户发货量
     , round(e_total_ticket_level / total_ticket_num, 4)     as e_ratio_ticket_level   --E类客户发件量占比
     , dorisdt
     , dorisdt                                               as dt
from (
         select networktype                                           --网点类型,区分代理,加盟,网点'
              , timetype                                              --时间类型,区分日,周,月
              , date_time                                             --日期
              , dorisdt
              , agent_name                                            --代理区
              , agent_code                                            --代理区code
              , fran_name                                             --加盟商名称
              , fran_code                                             --加盟商名称code
              , network_code                                          --网点编码
              , network_name                                          --网点名称
              , (a_total_customer_level+b_total_customer_level+c_total_customer_level+d_total_customer_level+e_total_customer_level) as    total_customer_num                                   --总客户数
              , (a_total_ticket_level+b_total_ticket_level+c_total_ticket_level+d_total_ticket_level+e_total_ticket_level) as total_ticket_num                                      --总票数
              , a_total_customer_level --A类客户数
              , a_total_ticket_level   --A类客户发货量
              , b_total_customer_level --B类客户数
              , b_total_ticket_level   --B类客户发货量
              , c_total_customer_level --C类客户数
              , c_total_ticket_level   --C类客户发货量
              , d_total_customer_level --D类客户数
              , d_total_ticket_level   --D类客户发货量
              , e_total_customer_level --E类客户数
              , e_total_ticket_level   --E类客户发货量
         from (
                  select networktype                                           --网点类型,区分代理,加盟,网点'
                       , timetype                                              --时间类型,区分日,周,月
                       , date_time                                             --日期
                       , dorisdt
                       , agent_name                                            --代理区
                       , agent_code                                            --代理区code
                       , fran_name                                             --加盟商名称
                       , fran_code                                             --加盟商名称code
                       , network_code                                          --网点编码
                       , network_name                                          --网点名称
                       , nvl(max(a_total_customer_level),0) as a_total_customer_level --A类客户数
                       , nvl(max(a_total_ticket_level)  ,0) as a_total_ticket_level   --A类客户发货量
                       , nvl(max(b_total_customer_level),0) as b_total_customer_level --B类客户数
                       , nvl(max(b_total_ticket_level)  ,0) as b_total_ticket_level   --B类客户发货量
                       , nvl(max(c_total_customer_level),0) as c_total_customer_level --C类客户数
                       , nvl(max(c_total_ticket_level)  ,0) as c_total_ticket_level   --C类客户发货量
                       , nvl(max(d_total_customer_level),0) as d_total_customer_level --D类客户数
                       , nvl(max(d_total_ticket_level)  ,0) as d_total_ticket_level   --D类客户发货量
                       , nvl(max(e_total_customer_level),0) as e_total_customer_level --E类客户数
                       , nvl(max(e_total_ticket_level)  ,0) as e_total_ticket_level   --E类客户发货量
                  from (
                           select networktype                                                                            --网点类型,区分代理,加盟,网点'
                                , timetype                                                                               --时间类型,区分日,周,月
                                , date_time                                                                              --日期
                                , dorisdt
                                , agent_name                                                                             --代理区
                                , agent_code                                                                             --代理区code
                                , fran_name                                                                              --加盟商名称
                                , fran_code                                                                              --加盟商名称code
                                , network_code                                                                           --网点编码
                                , network_name                                                                           --网点名称
                                , case when customer_level = 'A' then total_customer_level end as a_total_customer_level --A类客户数
                                , case when customer_level = 'A' then total_ticket_level end   as a_total_ticket_level   --A类客户发货量
                                , case when customer_level = 'B' then total_customer_level end as b_total_customer_level --B类客户数
                                , case when customer_level = 'B' then total_ticket_level end   as b_total_ticket_level   --B类客户发货量
                                , case when customer_level = 'C' then total_customer_level end as c_total_customer_level --C类客户数
                                , case when customer_level = 'C' then total_ticket_level end   as c_total_ticket_level   --C类客户发货量
                                , case when customer_level = 'D' then total_customer_level end as d_total_customer_level --D类客户数
                                , case when customer_level = 'D' then total_ticket_level end   as d_total_ticket_level   --D类客户发货量
                                , case when customer_level = 'E' then total_customer_level end as e_total_customer_level --E类客户数
                                , case when customer_level = 'E' then total_ticket_level end   as e_total_ticket_level   --E类客户发货量
                           from (
                                    select timetype
                                         , networktype
                                         , date_time                                    --日期
                                         , dorisdt
                                         , agent_name                                   --代理区
                                         , agent_code                                   --代理区code
                                         , fran_name                                    --加盟商
                                         , fran_code                                    --加盟商code
                                         , network_code                                 --网点编码
                                         , network_name                                 --网点名称
                                         , customer_level                               --客户级别
                                         , count(customer_code) as total_customer_level --等级对应的客户数
                                         , sum(ticket_quantity) as total_ticket_level   --等级对应的票数
                                    from jms_dm.dm_customer_date_network_level_ticket_detail_dt t2
                                    group by timetype
                                           , networktype
                                           , date_time    --日期
                                           , dorisdt
                                           , agent_name   --代理区
                                           , agent_code   --代理区code
                                           , fran_name    --加盟商
                                           , fran_code    --加盟商code
                                           , network_code --网点编码
                                           , network_name --网点名称
                                           , customer_level --客户级别
                                ) t3
                       ) tt
                  group by networktype  --网点类型,区分代理,加盟,网点'
                         , timetype     --时间类型,区分日,周,月
                         , date_time    --日期
                         , dorisdt
                         , agent_name   --代理区
                         , agent_code   --代理区code
                         , fran_name    --加盟商名称
                         , fran_code    --加盟商名称code
                         , network_code --网点编码
                         , network_name --网点名称
              ) t
     ) t4

 distribute by dt;
